Industrial robots perform a variety of tasks involving the movement and manipulation of various objects. A typical industrial robot as used, e.g., in a manufacturing environment, may have one or more arms equipped with grippers that allow the robot to pick up, transport, and put down objects, and a machine-vision system that guides the robot in the performance of its tasks. Conventional machine-vision systems usually include custom-developed vision software with pre-defined descriptive visual models of the objects to be manipulated, which specify exactly what an object looks like and how it can be detected. Collectively, these pre-defined models often define a number of narrowly prescribed object classes that facilitate matching and identifying objects in the real world that belong to any of the classes, but are not, or only minimally, generalizable to new types of objects. Advanced robots, however, are generally intended to be used in a wide variety of situations, including situations involving objects that may not have been anticipated. The visual-recognition needs of such a robot cannot be adequately met with a set of pre-defined visual models; rather, the robot needs the capability to develop descriptive visual models for objects in the field as it encounters the objects. In addition, the robot may need to learn how to grasp, pick up, and/or otherwise manipulate the newly encountered object. Such learning may be facilitated by interactions with a human trainer who can provide the robot with information as the circumstances require. It is desirable, however, that the trainer is neither required to have knowledge of computer vision, nor burdened with algorithmic details and specifics of visual representations and models.
Accordingly, there is a need for robots with adaptable machine-vision systems that are capable of expanding the set of objects they can recognize and manipulate, either autonomously or with the help of intuitive interactions with a human trainer.